<?php
class pedidos extends Controller {

	var $titp='Ventas-Compras';
	var $tits='Ventas-Compras';
	var $url ='pedidos/';
	var $farmacias=array('farmia','botica','elcarmen','ermita','estacion','galenica','gema','sebastian');
	var $f=array(
		 'FARMIA'        => 'FA',
		 'BOTICA'        => 'BO',
		 'DEL CARMEN'    => 'EC',
		 'ERMITA'        => 'ER',
		 'ESTACION'      => 'ES',
		 'GALENICA'      => 'GA',
		 'GEMA'          => 'GE',
		 'SAN SEBASTIAN' => 'SS'
		);
	var $compara=array(
		'farmia'        => 'FA',
		'botica'        => 'BO',
		'elcarmen'      => 'EC',
		'ermita'        => 'ER',
		'estacion'      => 'ES',
		'galenica'      => 'GA',
		'gema'          => 'GE',
		'sebastian'     => 'SS'
		);

	function pedidos(){
		parent::Controller();
		$this->load->library('rapyd');
		$this->datasis->modulo_id('20D',1);
	}

	function index(){
		//redirect($this->url.'viewinventario');
	}

	//Para hacer los pedidos de fallas semanales
	function xfalla(){
		$this->rapyd->load('datafilter','datagrid');

		$modbus=array(
			'tabla'   =>'sinv',
			'columnas'=>array(
				'codigo' =>'C&oacute;digo',
				'barras' =>'Barras',
				'descrip'=>'Descripci&oacute;n',
				'precio1'=>'Precio 1',
				'precio2'=>'Precio 2',
				'precio3'=>'Precio 3',
				'precio4'=>'Precio 4'),
			'filtro'  =>array('codigo'=>'C&oacute;digo','barras' =>'Barras','descrip'=>'Descripci&oacute;n'),
			'retornar'=>array('barras'=>'barras'),
			'titulo'  =>'Buscar en inventario');
		$boton=$this->datasis->modbus($modbus);

		$filter = new DataFilter($this->titp);
		$filter->db->select('a.*');
		$filter->db->from('inventario AS a');
		$filter->db->join('droguerias.inventarios AS b','a.barras=b.barras');
		//$filter->db->where('LENGTH(TRIM(marca)) >',0);

		$filter->barras = new inputField('Barras','barras');
		$filter->barras->size      =17;
		$filter->barras->maxlength =15;
		$filter->barras->append($boton);

		$filter->descrip = new inputField('Descripci&oacute;n','descrip');
		$filter->descrip->size      =47;
		$filter->descrip->maxlength =45;

		$filter->existen = new inputField('Existencia','existen');
		$filter->existen->size      =36;
		$filter->existen->maxlength =34;

		$sql1='SELECT CONCAT("%",marca,"%") AS v,marca AS val FROM inventario WHERE LENGTH(TRIM(marca))>0 GROUP BY marca';
		$filter->marca = new dropdownField('Marca','marca');
		$filter->marca->option('','Todas');
		$filter->marca->options($sql1);
		$filter->marca->clause='where';
		$filter->marca->operator='like';

		$sql2='SELECT grupo,grupo AS val FROM inventario WHERE LENGTH(TRIM(grupo))>0 GROUP BY grupo';
		$filter->grupo = new dropdownField('Grupo','grupo');
		$filter->grupo->option('','Todas');
		$filter->grupo->options($sql2);

		$filter->buttons('reset', 'search');
		$filter->build();

		$where=array();
		foreach($this->farmacias AS $value){
			$where[]="a.$value < a.p$value";
			$ww='('.implode(' or ',$where).')';
		}
		$filter->db->where($ww);

		$atts = array(
			'width'      => '800',
			'height'     => '600',
			'scrollbars' => 'yes',
			'status'     => 'yes',
			'resizable'  => 'yes',
			'screenx'    => '0',
			'screeny'    => '0'
		);

		function pedir($barras,$pedir){
			$barras=raencode($barras);
			return form_checkbox($barras, $barras,($pedir=='S'?TRUE:FALSE));
		}

		function _c($nom,$barras,$existen,$promedio){
			$n=$nom.$barras;
			if($existen<=0 && $promedio>0)
				$pedir=-1*$existen+($promedio>0?$promedio:1);
			elseif($existen>=$promedio || $promedio==0)
				$pedir=0;
			else
				$pedir=$promedio-$existen;
			$data = array(
				'name'        => $n,
				'id'          => $n,
				'value'       => ceil($pedir),
				'size'        => '1',
				'style'       => 'text-align:right',
				'class'       =>'inputnum'
			);
			return form_input($data);
		}
		function cfarmia($barras,$existen,$promedio){
			$n='CA_farmia_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cbotica($barras,$existen,$promedio){
			$n='CA_botica_';
			return _c($n,$barras,$existen,$promedio);
		}
		function celcarmen($barras,$existen,$promedio){
			$n='CA_elcarmen_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cermita($barras,$existen,$promedio){
			$n='CA_ermita_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cestacion($barras,$existen,$promedio){
			$n='CA_estacion_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cgalenica($barras,$existen,$promedio){
			$n='CA_Farmia_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cgema($barras,$existen,$promedio){
			$n='CA_gema_';
			return _c($n,$barras,$existen,$promedio);
		}
		function csebastian($barras,$existen,$promedio){
			$n='CA_sebastian_';
			return _c($n,$barras,$existen,$promedio);
		}
		function formato($e,$p){
			$e=ceil($e);
			$p=ceil($p);
			$s ='<table ';
			$s.=($p>$e)?'bgcolor=\'#D2B48C\'':'';
			$s.='>';
			$s.='<tr><td aling="left">Exist:</td><td aling="right">'.number_format($e,0).'</td></tr>';
			$s.='<tr><td aling="left">Sem:</td><td aling="right">'.number_format($p,0).'</td></tr>';
			
			$s.='</table>';
			return $s;
		}

		$grid = new DataGrid('titulo');
		$grid->order_by('descrip','asc');
		$grid->per_page = 40;
		$grid->use_function('formato','pedir','caja','cfarmia','cbotica','celcarmen','cermita','cestacion','cgalenica','cgema','csebastian');

		$grid->column_orderby('Descripci&oacute;n','descrip','descrip','align="left"');
		$grid->column_orderby('Marca'             ,'marca'  ,'marca'  ,'align="left"');
		$grid->column_orderby('Exis.'             ,'<nformat><#existen#></nformat><pedir><#barras#>|<#pedir#></pedir>','existen'   ,'align="right" nowrap="nowrap"');
		foreach($this->farmacias AS $value){
			$grid->column(ucwords($value),"<formato><#$value#>|<#p$value#></formato><c$value><#barras#>|<#$value#>|<#p$value#></c$value>",'align="right"');
		}
		$grid->build();
		echo $grid->db->last_query();

		$data['script']  = '<script language="javascript" type="text/javascript">';
		$data['script'] .= '
		$(document).ready(function(){
			$(".inputnum").numeric("0");
			$(":checkbox:not(#bajosem)").change(function(){
				name=$(this).attr("name");
				ch=$(this).is(":checked");

				$.post("'.site_url('supervisor/vieventascompras/actualiza').'",{barras: $(this).val(),accion:ch,cfarmia:$("#CA_farmia_"+name).val(),cbotica:$("#CA_botica_"+name).val(),celcarmen:$("#CA_elcarmen_"+name).val(),cermita:$("#CA_ermita_"+name).val(),cestacion:$("#CA_estacion_"+name).val(),cgalenica:$("#CA_galenica_"+name).val(),cgema:$("#CA_gema_"+name).val(),cfarmia:$("#CA_sebastian_"+name).val()},
					function(data){
						if(data=="SI"){
							return true;
						}else{
							$("input[name=\'"+name+"\']").removeAttr("checked");
							alert(data);
							return false;
						}
					}
				);
			});

			$("#fin").click(function(){
				$.post("'.site_url('supervisor/vieventascompras/finpedido').'",{barras: ""},
					function(data){
						if(data=="_NO_"){
							alert("No se pudo Guardar el pedido. Por Favor Comuniquese con soporte tecnico");
						}else{
							alert(data);
							$(":checkbox").removeAttr("checked");
						}
						//location.reload();
					}
				);
			});

			$("#recupera").click(function(){
				numero=prompt("Introduzca el numero de pedido a recuperar");
				if(numero){
					$.post("'.site_url('supervisor/vieventascompras/recuperapedido').'",{num: numero},
						function(data){
							if(data=="_NO_"){
								alert("No se pudo Recuperar el pedido. Por Favor Comuniquese con soporte tecnico");
							}else{
								alert("El pedido se recupero exitosamente. Por Favor, Presione Reenviar en el siguiente mensaje");
								location.reload();
							}
						}
					);
				}else{
					alert("hola mundo");
				}
			});
		});';
		$data['script'] .= '</script>';
		$smenu['link']   = barra_menu('20D');
		$data['smenu']   = $this->load->view('view_sub_menu', $smenu,true);
		$data['filtro']  = $filter->output;
		$data['content'] = $grid->output;
		$data['head']    = $this->rapyd->get_head().script('jquery.js').script('plugins/jquery.numeric.pack.js');
		$data['title']   = heading('Analisis de Fallas');
		$this->load->view('view_ventanas', $data);
	}

	function xnegocio(){
		$this->rapyd->load('datafilter','datagrid');

		$filter = new DataFilter($this->titp);
		$filter->db->select(array('a.descrip','a.barras','a.existen','a.marca','a.pedir'));
		$filter->db->from('inventario AS a');
		$filter->db->join('droguerias.inventarios AS b','a.barras=b.barras');
		$filter->db->join('costos AS c','c.barras=a.barras');
		$filter->db->groupby('a.barras');
		//$filter->db->where('LENGTH(TRIM(marca)) >',0);

		$filter->fechad = new dateonlyField('Desde', 'fechad','d/m/Y');
		$filter->fechah = new dateonlyField('Hasta', 'fechah','d/m/Y');
		$filter->fechad->clause  =$filter->fechah->clause ='where';
		$filter->fechad->db_name =$filter->fechah->db_name='c.fecha';
		$filter->fechad->rule=$filter->fechah->rule='required';
		$filter->fechad->insertValue = date('Y-m-d',mktime(0, 0, 0, date("m"), date("d")-30, date("Y")));
		$filter->fechah->insertValue = date('Y-m-d');
		$filter->fechad->operator='>=';
		$filter->fechah->operator='<=';
		$filter->fechad->group='Fecha';
		$filter->fechah->group='Fecha';

		$filter->descrip = new inputField('Descripci&oacute;n','descrip');
		$filter->descrip->size      =47;
		$filter->descrip->maxlength =45;

		$sql1='SELECT CONCAT("%",marca,"%") AS v,marca AS val FROM inventario WHERE LENGTH(TRIM(marca))>0 GROUP BY marca';
		$filter->marca = new dropdownField('Marca','marca');
		$filter->marca->option('','Todas');
		$filter->marca->options($sql1);
		$filter->marca->clause='where';
		$filter->marca->operator='like';

		$sql2='SELECT grupo,grupo AS val FROM inventario WHERE LENGTH(TRIM(grupo))>0 GROUP BY grupo';
		$filter->grupo = new dropdownField('Grupo','grupo');
		$filter->grupo->option('','Todas');
		$filter->grupo->options($sql2);

		$filter->buttons('reset', 'search');
		$filter->build();

		$where=array();
		foreach($this->farmacias AS $value){
			$where[]="`a`.`$value` < `a`.`p$value`";
			$ww='('.implode(' OR ',$where).')';
		}
		$filter->db->where($ww);

		foreach($this->compara AS $value=>$idfar){
			$sente = "SUM(`c`.`cantidad`*(`c`.`origen`='3I')*(`c`.`farmacia`='${idfar}')) AS p${value}";
			$this->db->select($sente);
			$this->db->select("a.${value}");
		}

		$atts = array(
			'width'      => '800',
			'height'     => '600',
			'scrollbars' => 'yes',
			'status'     => 'yes',
			'resizable'  => 'yes',
			'screenx'    => '0',
			'screeny'    => '0'
		);

		function pedir($barras,$pedir){
			$barras=raencode($barras);
			return form_checkbox($barras, $barras,($pedir=='S'?TRUE:FALSE));
		}

		function _c($nom,$barras,$existen,$promedio){
			$n=$nom.$barras;
			if($existen<=0 && $promedio>0)
				$pedir=-1*$existen+($promedio>0?$promedio:1);
			elseif($existen>=$promedio || $promedio==0)
				$pedir=0;
			else
				$pedir=$promedio-$existen;
			$data = array(
				'name'        => $n,
				'id'          => $n,
				'value'       => ceil($pedir),
				'size'        => '1',
				'style'       => 'text-align:right',
				'class'       =>'inputnum'
			);
			return form_input($data);
		}
		function cfarmia($barras,$existen,$promedio){
			$n='CA_farmia_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cbotica($barras,$existen,$promedio){
			$n='CA_botica_';
			return _c($n,$barras,$existen,$promedio);
		}
		function celcarmen($barras,$existen,$promedio){
			$n='CA_elcarmen_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cermita($barras,$existen,$promedio){
			$n='CA_ermita_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cestacion($barras,$existen,$promedio){
			$n='CA_estacion_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cgalenica($barras,$existen,$promedio){
			$n='CA_Farmia_';
			return _c($n,$barras,$existen,$promedio);
		}
		function cgema($barras,$existen,$promedio){
			$n='CA_gema_';
			return _c($n,$barras,$existen,$promedio);
		}
		function csebastian($barras,$existen,$promedio){
			$n='CA_sebastian_';
			return _c($n,$barras,$existen,$promedio);
		}
		function formato($e,$p){
			$e=ceil($e); //Existencia
			$p=ceil($p); //proedio
			$s ='<table ';
			$s.=($p>$e)?'bgcolor=\'#D2B48C\'':'';
			$s.='>';
			$s.='<tr><td aling="left">Exist:</td><td aling="right">'.number_format($e,0).'</td></tr>';
			$s.='<tr><td aling="left">Vent:</td><td aling="right">'.number_format($p,0).'</td></tr>';
			$s.='</table>';
			return $s;
		}

		if($filter->is_valid()){
			$grid = new DataGrid('titulo');
			$grid->order_by('descrip','asc');
			$grid->per_page = 40;
			$grid->use_function('formato','pedir','caja','cfarmia','cbotica','celcarmen','cermita','cestacion','cgalenica','cgema','csebastian');

			$grid->column_orderby('Descripci&oacute;n','descrip','descrip','align="left"');
			$grid->column_orderby('Marca'             ,'marca'  ,'marca'  ,'align="left"');
			$grid->column_orderby('Exis.'             ,'<nformat><#existen#></nformat><pedir><#barras#>|<#pedir#></pedir>','existen'   ,'align="right" nowrap="nowrap"');
			foreach($this->farmacias AS $value){
				$grid->column(ucwords($value),"<formato><#$value#>|<#p$value#></formato><c$value><#barras#>|<#$value#>|<#p$value#></c$value>",'align="right"');
			}
			$grid->build();
			//echo $grid->db->last_query();

			$data['script']  = '<script language="javascript" type="text/javascript">';
			$data['script'] .= '
			$(document).ready(function(){
				$(".inputnum").numeric("0");
				$(":checkbox:not(#bajosem)").change(function(){
					name=$(this).attr("name");
					ch=$(this).is(":checked");
					$.post("'.site_url($this->url.'actualiza').'",{barras: $(this).val(),accion:ch,cfarmia:$("#CA_farmia_"+name).val(),cbotica:$("#CA_botica_"+name).val(),celcarmen:$("#CA_elcarmen_"+name).val(),cermita:$("#CA_ermita_"+name).val(),cestacion:$("#CA_estacion_"+name).val(),cgalenica:$("#CA_galenica_"+name).val(),cgema:$("#CA_gema_"+name).val(),cfarmia:$("#CA_sebastian_"+name).val()},
						function(data){
							if(data=="SI"){
								return true;
							}else{
								$("input[name=\'"+name+"\']").removeAttr("checked");
								alert(data);
								return false;
							}
						}
					);
				});
				$("#fin").click(function(){
					$.post("'.site_url('supervisor/vieventascompras/finpedido').'",{barras: ""},
						function(data){
							if(data=="_NO_"){
								alert("No se pudo Guardar el pedido. Por Favor Comuniquese con soporte tecnico");
							}else{
								alert(data);
								$(":checkbox").removeAttr("checked");
							}
							//location.reload();
						}
					);
				});
				$("#recupera").click(function(){
					numero=prompt("Introduzca el numero de pedido a recuperar");
					if(numero){
						$.post("'.site_url('supervisor/vieventascompras/recuperapedido').'",{num: numero},
							function(data){
								if(data=="_NO_"){
									alert("No se pudo Recuperar el pedido. Por Favor Comuniquese con soporte tecnico");
								}else{
									alert("El pedido se recupero exitosamente. Por Favor, Presione Reenviar en el siguiente mensaje");
									location.reload();
								}
							}
						);
					}else{
						alert("hola mundo");
					}
				});
			});';
			$data['script'] .= '</script>';
			$ggrid=$grid->output;
		}else{
			$ggrid='';
		}

		$smenu['link']   = barra_menu('20D');
		$data['smenu']   = $this->load->view('view_sub_menu', $smenu,true);
		$data['filtro']  = $filter->output;
		$data['content'] = $ggrid;
		$data['head']    = $this->rapyd->get_head().script('jquery.js').script('plugins/jquery.numeric.pack.js');
		$data['title']   = heading('Pedidos para negocioaci&oacute;n');
		$this->load->view('view_ventanas', $data);
	}


	function negociolista(){
		$this->rapyd->load('datafilter','datagrid');

		$filter = new DataFilter('Filtro');
		$filter->db->select(array('a.descrip','a.barras','a.existen','a.marca','a.pedir'));
		$filter->db->from('inventario AS a');
		$filter->db->join('droguerias.inventarios AS b','a.barras=b.barras');
		$filter->db->join('costos AS c','c.barras=a.barras');
		$filter->db->groupby('a.barras');
		$filter->db->orderby('a.descrip');
		//$filter->db->where('LENGTH(TRIM(marca)) >',0);

		$filter->fechad = new dateonlyField('Desde', 'fechad','d/m/Y');
		$filter->fechah = new dateonlyField('Hasta', 'fechah','d/m/Y');
		$filter->fechad->clause  =$filter->fechah->clause ='where';
		$filter->fechad->db_name =$filter->fechah->db_name='c.fecha';
		$filter->fechad->rule=$filter->fechah->rule='required';
		$filter->fechad->insertValue = date('Y-m-d',mktime(0, 0, 0, date("m"), date("d")-30, date("Y")));
		$filter->fechah->insertValue = date('Y-m-d');
		$filter->fechad->operator='>=';
		$filter->fechah->operator='<=';
		$filter->fechad->group='Fecha';
		$filter->fechah->group='Fecha';

		$filter->descrip = new inputField('Descripci&oacute;n','descrip');
		$filter->descrip->size      =47;
		$filter->descrip->maxlength =45;

		$sql1='SELECT CONCAT("%",marca,"%") AS v,marca AS val FROM inventario WHERE LENGTH(TRIM(marca))>0 GROUP BY marca';
		$filter->marca = new dropdownField('Marca','marca');
		$filter->marca->option('','Todas');
		$filter->marca->options($sql1);
		$filter->marca->clause='where';
		$filter->marca->operator='like';

		$sql2='SELECT grupo,grupo AS val FROM inventario WHERE LENGTH(TRIM(grupo))>0 GROUP BY grupo';
		$filter->grupo = new dropdownField('Grupo','grupo');
		$filter->grupo->option('','Todas');
		$filter->grupo->options($sql2);

		$filter->salformat = new radiogroupField('Formato de salida','salformat');
		//$filter->salformat->options(array('PDF'=>'pdf','XLS'=>'xls'));
		$filter->salformat->options(array('XLS'=>'xls'));
		$filter->salformat->insertValue ='XLS';
		$filter->salformat->clause = '';

		$filter->buttons('reset', 'search');
		$filter->build();

		$where=array();
		foreach($this->farmacias AS $value){
			$where[]="`a`.`$value` < `a`.`p$value`";
			$ww='('.implode(' OR ',$where).')';
		}
		$filter->db->where($ww);

		foreach($this->compara AS $value=>$idfar){
			$sente = "SUM(`c`.`cantidad`*(`c`.`origen`='3I')*(`c`.`farmacia`='${idfar}')) AS p${value}";
			$this->db->select($sente);
			$this->db->select("a.${value}");
		}

		if($filter->is_valid()){
			$mSQL=$this->rapyd->db->_compile_select();

			$_formato=$this->input->post('salformat');
			if($_formato or !empty($_formato))
				$_mclase=$_formato.'Reporte';
			else
				$_mclase='PDFReporte';
			$this->load->library($_mclase);

			$pdf = new PDFReporte($mSQL,'L');
			$pdf->setHeadValores('TITULO1');
			$pdf->setSubHeadValores('TITULO2','TITULO3');
			$pdf->setTitulo("Listado de Movimiento de Inventario");
			//$pdf->setSobreTabla($sobretabla);
			$pdf->setSubTitulo("Desde la fecha: ".$filter->fechad->value." Hasta ".$filter->fechah->value);
			$pdf->AddPage();
			$pdf->setTableTitu(9,'Times');

			$pdf->AddCol('descrip' ,55,'Descripción','L',6);
			$pdf->AddCol('marca'   ,30,'Marca'      ,'L',6);
			$pdf->AddCol('existen' ,17,'Exist.'     ,'R',6);
			foreach($this->compara AS $value=>$idfar){
				$pdf->AddCol('p'.$value ,17,'V.'.ucwords($value),'R',6);
				$pdf->AddCol($value ,17,'E.'.ucwords($value),'R',6);
				$pdf->AddCof("((<#p${value}#>-(<#${value}#>))>0)?<#p${value}#>-(<#${value}#>):0", 17,'Ped.'.$value ,'R',6);
			}

			//$pdf->setTotalizar('compras','ventas');
			$pdf->Table();
			$pdf->Output();
		}

		$data['filtro'] = $filter->output;
		$data['titulo'] = heading('Listado para negocioaciones');
		$data['head'] = $this->rapyd->get_head();
		$this->load->view('view_freportes', $data);
	}



	function kardex($barras,$farmacia,$fecha){
		$barrase  =$this->db->escape($barras);
		$farmaciae=$this->db->escape($farmacia);
		$codigo=$this->datasis->dameval("SELECT codigo FROM costos WHERE barras=$barrase AND farmacia=(case $farmaciae when 'FARMIA' then 'FA' when 'BOTICA' then 'BO' when 'DEL CARMEN' then 'EC' when 'ERMITA' then 'ER' when 'ESTACION' then 'ES' when 'GALENICA' then 'GA' when 'GEMA' then 'GE' when 'SAN SEBASTIAN' then 'SS' else 'INDEFINIDA' end)");
		redirect('inventario/kardex/filteredgrid/'.raencode($codigo).'/'.$fecha.'/'.$this->f[$farmacia]);
	}

	function filteredgrid($barras='',$farmacia=''){
		$this->rapyd->load('datafilter','datagrid');
		$modbus=array(
			'tabla'   =>'sinv',
			'columnas'=>array(
				'codigo' =>'C&oacute;digo',
				'barras' =>'Barras',
				'descrip'=>'Descripci&oacute;n',
				'precio1'=>'Precio 1',
				'precio2'=>'Precio 2',
				'precio3'=>'Precio 3',
				'precio4'=>'Precio 4'),
			'filtro'  =>array('codigo'=>'C&oacute;digo','barras' =>'Barras','descrip'=>'Descripci&oacute;n'),
			'retornar'=>array('barras'=>'barras'),
			'titulo'  =>'Buscar en inventario',
			'dbgroup'=>'consolidado');

		$boton=$this->datasis->modbus($modbus);
		$barrase=$this->db->escape($barras);

		$sql="
		SELECT fecha,fe,fa,descrip,venta,compras,saldo,semanal FROM (
		select '' fe,farmacia fa,fecha,farmacia,descrip,venta,compras,saldo,(venta/4)  semanal
		from  ventascompras 
		where barras=$barrase 
		UNION ALL
		select '','',fecha,farmacia,'TOTALES',SUM(venta),SUM(compras),SUM(saldo),(SUM(venta/4)/count(venta))  semanal 
		from  ventascompras 
		where barras=$barrase 
		GROUP BY fecha with rollup
		UNION ALL
		select CONCAT(MID(fecha,1,4),'-',MID(fecha,5,5)) fe,'',fecha,farmacia,'','','','','' 
		from  ventascompras 
		where barras=$barrase 
		GROUP BY fecha 
		)todo
		ORDER BY fecha is null,fecha ,fe='',descrip='TOTALES',farmacia
		";

		$atts = array(
			'width'      => '800',
			'height'     => '600',
			'scrollbars' => 'yes',
			'status'     => 'yes',
			'resizable'  => 'yes',
			'screenx'    => '0',
			'screeny'    => '0'
		);

		$descrip=$this->datasis->dameval("SELECT descrip FROM sinv WHERE barras=$barrase LIMIT 10 ");
		$uri = anchor_popup($this->url."kardex/$barras/<#fa#>/<#fecha#>",'<#fa#>',$atts);

		$sql=$this->db->query($sql);
		$sql=$sql->result_array();

		function negrita($descrip,$fecha=NULL){
			if($descrip=='TOTALES' && !(strlen($fecha)>0))
				return "<span style='font-size:1.5em'><strong>TOTAL GENERAL</strong></span>";
			elseif($descrip=='TOTALES')
				return "<span style='font-size:1.2em'><strong>TOTALES</strong></span>";
			else
				return $descrip;
		}

		function negrita2($descrip,$monto){
			if($descrip=='TOTALES')
			return "<span style='font-size:1.2em'><strong>".nformat($monto)."</strong></span>";
			elseif(strlen($monto)>0)
			return nformat($monto);
			else return '';
		}

		$grid = new DataGrid(anchor($this->url.'viewinventario','Ir al Inventario por sucursales'),$sql);
		$grid->db->_escape_char='';
		$grid->db->_protect_identifiers=false;
		$grid->use_function('negrita','negrita2');

		//$grid->column_orderby('Barras'    ,$uri                                             ,'align="left"'  );
		$grid->column('A&ntilde;o/Mes'    ,"fe"                                             ,'align="center"');
		$grid->column('Farmacia'          ,$uri                                             ,'align="left"'  );
		$grid->column('Descripci&oacute;n',"<negrita><#descrip#>|<#fecha#></negrita>"       ,'align="left"'  );
		$grid->column('Mensual'           ,"<negrita2><#descrip#>|<#venta#></negrita2>"     ,'align="right"' );
		$grid->column('Semanal'           ,"<negrita2><#descrip#>|<#semanal#></negrita2>"   ,'align="right"' );
		$grid->column('Compras'           ,"<negrita2><#descrip#>|<#compras#></negrita2>"   ,'align="right"' );
		$grid->column('Saldo'             ,"<negrita2><#descrip#>|<#saldo#></negrita2>"     ,'align="right"' );

		$grid->build();
		//echo $grid->db->last_query();

		//$data['filtro']  = $filter->output;
		$data['content'] = $grid->output;
		$data['head']    = $this->rapyd->get_head().script('jquery.js');
		$data['title']   = heading('('.$barras.') '.$descrip);
		$this->load->view('view_ventanas', $data);
	}

	function filtrofarmacia($barras='',$farmacia=''){
		$this->rapyd->load('datafilter','datagrid');
		$modbus=array(
			'tabla'   =>'sinv',
			'columnas'=>array(
				'codigo' =>'C&oacute;digo',
				'barras' =>'Barras',
				'descrip'=>'Descripci&oacute;n',
				'precio1'=>'Precio 1',
				'precio2'=>'Precio 2',
				'precio3'=>'Precio 3',
				'precio4'=>'Precio 4'),
			'filtro'  =>array('codigo'=>'C&oacute;digo','barras' =>'Barras','descrip'=>'Descripci&oacute;n'),
			'retornar'=>array('barras'=>'barras'),
			'titulo'  =>'Buscar en inventario',
			'dbgroup'=>'consolidado');

		$boton=$this->datasis->modbus($modbus);
		$barrase=$this->db->escape($barras);

		$sql="
		SELECT fa,fe,descrip,venta,compras,saldo,semanal,fecha,farmacia FROM ( 
		select fecha fe,'' fa,fecha,farmacia,descrip,venta,compras,saldo,(venta/4) semanal 
		from ventascompras 
		where barras=$barrase 
		UNION ALL 
		select '','',fecha,farmacia,'TOTALES',SUM(venta),SUM(compras),SUM(saldo),(SUM(venta/4)/count(venta)) semanal 
		from ventascompras 
		where barras=$barrase 
		GROUP BY farmacia with rollup 
		UNION ALL 
		select '',farmacia,fecha,farmacia,'','','','','' 
		from ventascompras 
		where barras=$barrase 
		GROUP BY farmacia 
		)todo 
		ORDER BY farmacia is null,farmacia ,fa='',descrip='TOTALES',fecha 
		";

		$atts = array(
			'width'      => '800',
			'height'     => '600',
			'scrollbars' => 'yes',
			'status'     => 'yes',
			'resizable'  => 'yes',
			'screenx'    => '0',
			'screeny'    => '0'
		);

		$descrip=$this->datasis->dameval("SELECT descrip FROM sinv WHERE barras=$barrase LIMIT 10 ");
		$uri = anchor_popup($this->url."kardex/$barras/<#fa#>/<#fecha#>",'<#fa#>',$atts);

		$sql=$this->db->query($sql);
		$sql=$sql->result_array();

		function negrita($descrip,$fecha=NULL){
			if($descrip=='TOTALES' && !(strlen($fecha)>0))
				return "<span style='font-size:1.5em'><strong>TOTAL GENERAL</strong></span>";
			elseif($descrip=='TOTALES')
				return "<span style='font-size:1.2em'><strong>TOTALES</strong></span>";
			else
				return $descrip;
		}

		function negrita2($descrip,$monto){
			if($descrip=='TOTALES')
			return "<span style='font-size:1.2em'><strong>".nformat($monto)."</strong></span>";
			elseif(strlen($monto)>0)
			return nformat($monto);
			else return '';
		}

		$grid = new DataGrid(anchor($this->url.'viewinventario','Ir al Inventario por sucursales'),$sql);
		$grid->db->_escape_char='';
		$grid->db->_protect_identifiers=false;
		$grid->use_function('negrita','negrita2');

		//$grid->column_orderby('Barras'            ,$uri                                           ,'align="left"'  );
		$grid->column('Farmacia'          ,$uri                                             ,'align="left"'  );
		$grid->column('A&ntilde;o/Mes'    ,"fe"                                             ,'align="center"');
		$grid->column('Descripci&oacute;n',"<negrita><#descrip#>|<#farmacia#></negrita>"    ,'align="left"'  );
		$grid->column('Mensual'           ,"<negrita2><#descrip#>|<#venta#></negrita2>"     ,'align="right"' );
		$grid->column('Semanal'           ,"<negrita2><#descrip#>|<#semanal#></negrita2>"   ,'align="right"' );
		$grid->column('Compras'           ,"<negrita2><#descrip#>|<#compras#></negrita2>"   ,'align="right"' );
		$grid->column('Saldo'             ,"<negrita2><#descrip#>|<#saldo#></negrita2>"     ,'align="right"' );

		$grid->build();


		//$data['filtro']  = $filter->output;
		$data['content'] = $grid->output;
		$data['head']    = $this->rapyd->get_head().script('jquery.js');
		$data['title']   = heading('('.$barras.') '.$descrip);
		$this->load->view('view_ventanas', $data);

	}
	
	function sp_pasadata(){
		if($this->db->query("call sp_pasadata()"))
		$salida='EL PROCESO SE EJECUTO CORRECTAMENTE';
		else
		$salida='NO SE PUDO CORRER EL PROCESO';
		
		$data['head']    = $this->rapyd->get_head();
		$data['title']   = heading($salida);
		$this->load->view('view_ventanas', $data);
	}

	function actualiza(){
		$error='';
		$barras =$this->input->post('barras');
		$barrase=$this->db->escape($barras);
		$accion =$this->input->post('accion');
		$valores=array();
		foreach($this->farmacias AS $value) $valores[$value]=$this->input->post('c'.$value);

		$sinv       = $this->datasis->consularray("SELECT farmacia,codigo FROM sinv WHERE barras=$barrase");
		$inventario = $this->datasis->consularray("SELECT farmia,botica,elcarmen,ermita,estacion,galenica,gema,sebastian,vallealto,pfarmia,pbotica,pelcarmen,permita,pestacion,pgalenica,pgema,psebastian,pvallealto FROM inventario WHERE barras=$barrase");

		$compara2=array_flip($this->compara);
		$s='';
		if($barras!==false){
			$this->db->query("DELETE FROM pedido WHERE barras=$barrase");
			$this->db->query("UPDATE inventario SET pedir='N' WHERE barras=$barrase");

			if($accion=='true'){
				foreach($compara2 AS $key=>$value){
					if($valores[$value]>0){
						$c=(isset($sinv[$key]))? $sinv[$key] : NULL;
						$ddata = array('codigo' => $c,'barras'=>$barras,'farmacia'=>$key,'cant'=>abs($valores[$value]));
						$mSQL  = $this->db->insert_string('pedido', $ddata);
						if($this->db->simple_query($mSQL)){
							$this->db->query("UPDATE inventario SET pedir='S' WHERE barras=$barrase");
							$s='SI';
						}else{
							echo 'Hubo un error, comuniquese con soporte tecnico';
						}
					}
				}
			}else{
				$s='SI';
			}
		}else{
			echo 'Hubo un error, comuniquese con soporte tecnico2';
		}
		echo $s;
	}

	function finpedido(){
		$numero=$this->datasis->dameval("SELECT numero FROM pedido LIMIT 1");
		if(!($numero>0))
		$numero=$this->datasis->prox_numero('npedidos');
		
		$this->db->query("DELETE FROM pedido WHERE numero=$numero");
		$query="INSERT INTO pedidos (`numero`,`fecha`,`barras`,`codigo`,`farmacia`,`cant`)
		SELECT $numero,now(),barras,codigo,farmacia,cant FROM pedido ";
		
		if($this->db->query($query)){
			$this->db->query("DELETE FROM pedido ");
			$this->db->query("UPDATE inventario SET pedir='N'");
			echo "El pedido creado es el numero:$numero";
		}else
		echo '_NO_';
		
	}
	
	function recuperapedido(){
		$cant=0;
		//$numero=8;
		$numero = $this->input->post("num");
		if($numero)
		$cant   = $this->datasis->dameval("SELECT COUNT(*) FROM pedidos WHERE numero=$numero");
		
		if($cant>0){
			$this->db->query("DELETE FROM pedido ");
			$query="INSERT INTO pedido (`numero`,`barras`,`codigo`,`farmacia`,`cant`)
			SELECT numero,barras,codigo,farmacia,cant FROM pedidos WHERE numero=$numero";
			
			if($this->db->query($query)){
				$this->db->query("UPDATE inventario a JOIN pedidos b ON a.barras=b.barras
				SET a.pedir='S' WHERE b.numero=$numero");
				
			}else
			echo '_NO_';
		}else
		echo '_NO_';
		
	}

}
?>